/*
 * Licensed to the Tai Ping Jin Ke
 *
 * Copyright (c) 2022 .
 * All rights reserved.
 * 项目名称：呼叫中心-请求处理层-基础支撑平台
 * 版权说明：本软件属太平金融科技服务(上海)有限公司所有，在未获得太平金融科技服务(上海)有限公司正式授权情况下，任何企业和个人，不能获取、阅读、安装、传播本软件涉及的任何受知识产权保护的内容。
 */
package com.taiping.cc.basic.webapi.query;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

@ApiModel(value = "HadoopTableData", description = "表模型")
@Getter
@Setter
public class HadoopTableData {

    public HadoopTableData() {
    }

    public HadoopTableData(String rowKey, String tableName) {
        this.rowKey = rowKey;
        this.tableName = tableName;
    }

    @ApiModelProperty(value = "表名")
    private String tableName;

    @ApiModelProperty(value = "主键字段")
    private String rowKey;

    @ApiModelProperty(value = "列族")
    private String columnFamily;

    // 用于添加数据
    @ApiModelProperty(value = "数据")
    private Map<String, Object> data;

    // 用于返回数据
    @ApiModelProperty(value = "列的集合")
    private List<HadoopColumnData> columnDataList;

    /**
     * 获取数据列表
     */
    public List<HadoopColumnData> getColumnDataList() {
        if (this.columnDataList == null || columnDataList.size() > 0) {
            return this.columnDataList;
        }
        if (this.data == null || this.data.size() <= 0) {
            return new ArrayList<>();
        }
        List<HadoopColumnData> result = new ArrayList<>();
        for (Map.Entry<String, Object> entry : this.data.entrySet()) {
            result.add(new HadoopColumnData(this.columnFamily, entry.getKey(), entry.getValue()));
        }
        return result;
    }

}
